Global Const AF_DLI = 13 ' /* Direct data link interface */
Global Const AF_LAT = 14 ' /* LAT */
Global Const AF_HYLINK = 15 ' /* NSC Hyperchannel */
Global Const AF_APPLETALK = 16 ' /* AppleTalk */
Global Const AF_NETBIOS = 17 ' /* NetBios-style addresses */
Global Const FD_READ = &H1
Global Const FD_WRITE = &H2
Global Const FD_OOB = &H4
Global Const FD_ACCEPT = &H8
Global Const FD_CONNECT = &H10
Global Const FD_CLOSE = &H20
Global Const FD_SETSIZE% = 64
Public Const SOL_SOCKET = &HFFFF
Public Const SO_LINGER = &H80
Global Const INVALID_SOCKET = -1
Global Const SOCKET_ERROR = -1
Global Const BAD_SOCKET = -1
Global Const UNRESOLVED_HOST = -2
Global Const UNABLE_TO_BIND = -3
Global Const UNABLE_TO_CONNECT = -4
Global Const WIN_SOCKET_MSG = 2000
Public Const MAX_WSADescription = 257
Public Const MAX_WSASYSStatus = 129
Public Const WS_VERSION_REQD As Integer = &H101
Public Const WS_VERSION_MAJOR = WS_VERSION_REQD / &H100 And &HFF&
Public Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Public Const IP_OPTIONS = 1
Public Const MIN_SOCKETS_REQD = 0
'--- additional declarations
'Types
Global Const SOCK_STREAM = 1
Global Const SOCK_DGRAM = 2
Global Const SOCK_RAW = 3
Global Const SOCK_RDM = 4
Global Const SOCK_SEQPACKET = 5
'Protocol families, same as address families for now
Global Const PF_UNSPEC = 0
Global Const PF_UNIX = 1
Global Const PF_INET = 2
Global Const PF_IMPLINK = 3
Global Const PF_PUP = 4
Global Const PF_CHAOS = 5
Global Const PF_IPX = 6
Global Const PF_NS = 6
Global Const PF_ISO = 7
Global Const PF_OSI = AF_ISO
Global Const PF_ECMA = 8
Global Const PF_DATAKIT = 9
Global Const PF_CCITT = 10
Global Const PF_SNA = 11
Global Const PF_DECnet = 12
Global Const PF_DLI = 13
Global Const PF_LAT = 14
Global Const PF_HYLINK = 15
Global Const PF_APPLETALK = 16
Global Const PF_NETBIOS = 17
Public Const MAXGETHOSTSTRUCT = 1024
Public Const IPPROTO_TCP = 6
Public Const IPPROTO_UDP = 17
Public Const INADDR_NONE = &HFFFF
Public Const INADDR_ANY = &H0
' Windows Sockets definitions of regular Microsoft C error constants
Global Const WSAEINTR = 10004
Global Const WSAEBADF = 10009
Global Const WSAEACCES = 10013
Global Const WSAEFAULT = 10014
Global Const WSAEINVAL = 10022
Global Const WSAEMFILE = 10024
' Windows Sockets definitions of regular Berkeley error constants
Global Const WSAEWOULDBLOCK = 10035
Global Const WSAEINPROGRESS = 10036
Global Const WSAEALREADY = 10037
Global Const WSAENOTSOCK = 10038
Global Const WSAEDESTADDRREQ = 10039
Global Const WSAEMSGSIZE = 10040
Global Const WSAEPROTOTYPE = 10041
Global Const WSAENOPROTOOPT = 10042
Global Const WSAEPROTONOSUPPORT = 10043
Global Const WSAESOCKTNOSUPPORT = 10044
Global Const WSAEOPNOTSUPP = 10045
Global Const WSAEPFNOSUPPORT = 10046
Global Const WSAEAFNOSUPPORT = 10047
Global Const WSAEADDRINUSE = 10048
Global Const WSAEADDRNOTAVAIL = 10049
Global Const WSAENETDOWN = 10050
Global Const WSAENETUNREACH = 10051
Global Const WSAENETRESET = 10052
Global Const WSAECONNABORTED = 10053
Global Const WSAECONNRESET = 10054
Global Const WSAENOBUFS = 10055
Global Const WSAEISCONN = 10056
Global Const WSAENOTCONN = 10057
Global Const WSAESHUTDOWN = 10058
Global Const WSAETOOMANYREFS = 10059
Global Const WSAETIMEDOUT = 10060
Global Const WSAECONNREFUSED = 10061
Global Const WSAELOOP = 10062
Global Const WSAENAMETOOLONG = 10063
Global Const WSAEHOSTDOWN = 10064
Global Const WSAEHOSTUNREACH = 10065
Global Const WSAENOTEMPTY = 10066
Global Const WSAEPROCLIM = 10067
Global Const WSAEUSERS = 10068
Global Const WSAEDQUOT = 10069
Global Const WSAESTALE = 10070
Global Const WSAEREMOTE = 10071
' Extended Windows Sockets error constant definitions
Global Const WSASYSNOTREADY = 10091
Global Const WSAVERNOTSUPPORTED = 10092
Global Const WSANOTINITIALISED = 10093
Global Const WSAHOST_NOT_FOUND = 11001
Global Const WSATRY_AGAIN = 11002
Global Const WSANO_RECOVERY = 11003
Global Const WSANO_DATA = 11004
Global Const WSANO_ADDRESS = 11004
Type hostent
h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
End Type
Public hostent As hostent
Type WSAdata
wVersion As Integer
wHighVersion As Integer
szDescription As String * MAX_WSADescription '(0 To 255) As Byte
szSystemStatus As String * MAX_WSASYSStatus '(0 To 128) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Public WSAdata As WSAdata
Type Inet_Address ' IP Address in Network Order
Byte4 As Byte '
Byte3 As Byte '
Byte2 As Byte '
Byte1 As Byte '
End Type
Public IPLong As Inet_Address
'socket address
Type SockAddr
sin_family As Integer ' Address family
sin_port As Integer ' Port Number in Network Order
sin_addr As Long ' IP Address as Long
sin_zero As String * 8 '(8) As Byte ' Padding
End Type
Public SockAddr As SockAddr
Public Const SockAddr_Size = 16
Type hostent_async
h_name As Long
h_aliases As Long
h_addrtype As Integer
h_length As Integer
h_addr_list As Long
h_asyncbuffer(MAXGETHOSTSTRUCT) As Byte
End Type
Public hostent_async As hostent_async
Type fd_set
fd_count As Integer '' how many are in the set
fd_array(FD_SETSIZE) As Long '' array of SOCKET handles (64)
End Type
Public fd_set As fd_set
Type timeval
tv_sec As Long
tv_usec As Long
End Type
Public timeval As timeval
Type LingerType
l_onoff As Integer
l_linger As Integer
End Type
'---SOCKET FUNCTIONS
Public Declare Function accept Lib "wsock32.dll" (ByVal S As Long, addr As SockAddr, addrlen As Long) As Long
Public Declare Function bind Lib "wsock32.dll" (ByVal S As Long, addr As SockAddr, ByVal namelen As Long) As Long
Public Declare Function closesocket Lib "wsock32.dll" (ByVal S As Long) As Long
Public Declare Function connect Lib "wsock32.dll" (ByVal S As Long, addr As SockAddr, ByVal namelen As Long) As Long
Public Declare Function ioctlsocket Lib "wsock32.dll" (ByVal S As Long, ByVal cmd As Long, argp As Long) As Long
Public Declare Function getpeername Lib "wsock32.dll" (ByVal S As Long, sName As SockAddr, namelen As Long) As Long
Public Declare Function getsockname Lib "wsock32.dll" (ByVal S As Long, sName As SockAddr, namelen As Long) As Long
Public Declare Function getsockopt Lib "wsock32.dll" (ByVal S As Long, ByVal Level As Long, ByVal optname As Long, optval As Any, optlen As Long) As Long
Public Declare Function htonl Lib "wsock32.dll" (ByVal hostlong As Long) As Long
Public Declare Function htons Lib "wsock32.dll" (ByVal hostshort As Long) As Integer
Public Declare Function inet_addr Lib "wsock32.dll" (ByVal CP As String) As Long
Public Declare Function inet_ntoa Lib "wsock32.dll" (ByVal inn As Long) As Long